From 2b703b61cfdad95c1f780d23019052ad23348393 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 13 Jan 2016 20:53:54 +0100 Subject: [PATCH] gtk: Add private gtk_widget_reset_controllers() This is a one-shot call that can be called on the places we know we're taking input away. --- gtk/gtkwidget.c | 27 ++++++++++++++++----------- gtk/gtkwidgetprivate.h | 2 ++ 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 83be644951..2d9fd7fb4c 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -12834,17 +12834,7 @@ gtk_widget_propagate_state (GtkWidget *widget, } if (!gtk_widget_is_sensitive (widget)) - { - EventControllerData *controller_data; - GList *l; - - /* Reset all controllers */ - for (l = priv->event_controllers; l; l = l->next) - { - controller_data = l->data; - gtk_event_controller_reset (controller_data->controller); - } - } + gtk_widget_reset_controllers (widget); if (GTK_IS_CONTAINER (widget)) { @@ -17424,3 +17414,18 @@ _gtk_widget_consumes_motion (GtkWidget *widget, return FALSE; } + +void +gtk_widget_reset_controllers (GtkWidget *widget) +{ + EventControllerData *controller_data; + GtkWidgetPrivate *priv = widget->priv; + GList *l; + + /* Reset all controllers */ + for (l = priv->event_controllers; l; l = l->next) + { + controller_data = l->data; + gtk_event_controller_reset (controller_data->controller); + } +} diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h index a3402f3b1d..d87bca2bd8 100644 --- a/gtk/gtkwidgetprivate.h +++ b/gtk/gtkwidgetprivate.h @@ -292,6 +292,8 @@ void gtk_widget_set_csd_input_shape (GtkWidget gboolean gtk_widget_has_size_request (GtkWidget *widget); +void gtk_widget_reset_controllers (GtkWidget *widget); + /* inline getters */ static inline gboolean -- 2.30.2